#ifndef _RS485_PORT_INIT_H_
#define _RS485_PORT_INIT_H_
#include "stm32f4xx.h"

void rs485_port_USART5_Init(uint32_t baudrate);

void rs485_port_oe_PA15_Init(void);
void USART5_SendByte(uint8_t data);

// 初始化TIM6定时器，配置为2ms定时
void receive_frame_timeout_timer_TIM6_init(void);
// 启动TIM6定时器
void TIM6_Start(void);

// 停止TIM6定时器
void TIM6_Stop(void);

// 重新启动TIM6定时器
void TIM6_Restart(void);
void set_oe_to_send(void);
void set_oe_to_receive(void);
void start_to_send(void);
void stop_to_send(void);
uint8_t check_receive_interrupt_registers_data(uint8_t *byte);
void start_receive_timeout_timer(void);
void enable_txe_empty_interrupt(void);
void send_out_one_byte(uint8_t byte);
uint8_t check_txe_empty_interrupt(void);
void enable_wait_tc_empty_interrupt(void);
uint8_t check_tc_empty_interrupt(void);
uint8_t check_receive_timeout_timer_interrput(void);
void rs485_hard_init(void);

#endif // !_RS485_PORT2_INIT_H
